config-diff: Properly print files relative to root
authorColin Walters <walters@verbum.org>
Tue, 12 Mar 2013 12:47:11 +0000 (08:47 -0400)
committerColin Walters <walters@verbum.org>
Tue, 12 Mar 2013 12:48:05 +0000 (08:48 -0400)
Just less ugly.

src/libostree/ostree-diff.c
src/libostree/ostree-diff.h
src/ostree/ot-admin-builtin-diff.c
src/ostree/ot-builtin-diff.c

index 94083eba1f1ea3ae368ce1539338daed8ce7aafc..ccae4ed238974a3fc847937f9e83c966806b2adf 100644 (file)
@@ -367,8 +367,25 @@ ostree_diff_dirs (GFile          *a,
   return ret;
 }
 
+static void
+print_diff_item (char        prefix,
+                 GFile      *base,
+                 GFile      *file)
+{
+  if (g_file_is_native (file))
+    {
+      gs_free char *relpath = g_file_get_relative_path (base, file);
+      g_print ("%c    %s\n", prefix, relpath);
+    }
+  else
+    {
+      g_print ("%c    %s\n", prefix, gs_file_get_path_cached (file));
+    }
+}
+
 void
-ostree_diff_print (GFile          *base,
+ostree_diff_print (GFile          *a,
+                   GFile          *b,
                    GPtrArray      *modified,
                    GPtrArray      *removed,
                    GPtrArray      *added)
@@ -378,23 +395,16 @@ ostree_diff_print (GFile          *base,
   for (i = 0; i < modified->len; i++)
     {
       OstreeDiffItem *diff = modified->pdata[i];
-      g_print ("M    %s\n", gs_file_get_path_cached (diff->src));
+      print_diff_item ('M', a, diff->src);
     }
   for (i = 0; i < removed->len; i++)
     {
-      g_print ("D    %s\n", gs_file_get_path_cached (removed->pdata[i]));
+      GFile *removed_file = removed->pdata[i];
+      print_diff_item ('D', a, removed_file);
     }
   for (i = 0; i < added->len; i++)
     {
       GFile *added_f = added->pdata[i];
-      if (g_file_is_native (added_f))
-        {
-          char *relpath = g_file_get_relative_path (base, added_f);
-          g_assert (relpath != NULL);
-          g_print ("A    /%s\n", relpath);
-          g_free (relpath);
-        }
-      else
-        g_print ("A    %s\n", gs_file_get_path_cached (added_f));
+      print_diff_item ('A', b, added_f);
     }
 }
index 5784ce4582401bdf2ab20373fa3242c872f2c392..ba6d63f9354fcaa3b87fe9c2c6c36f1a519bbdc3 100644 (file)
@@ -54,7 +54,8 @@ gboolean ostree_diff_dirs (GFile          *a,
                            GCancellable   *cancellable,
                            GError        **error);
 
-void ostree_diff_print (GFile          *base,
+void ostree_diff_print (GFile          *a,
+                        GFile          *b,
                         GPtrArray      *modified,
                         GPtrArray      *removed,
                         GPtrArray      *added);
index af2b288b360b896a931b64fe91332d190db077e5..7792db3883dea4660f37329367f102d9bb55b46d 100644 (file)
@@ -96,7 +96,7 @@ ot_admin_builtin_diff (int argc, char **argv, OtAdminBuiltinOpts *admin_opts, GE
                          cancellable, error))
     goto out;
 
-  ostree_diff_print (new_etc_path, modified, removed, added);
+  ostree_diff_print (orig_etc_path, new_etc_path, modified, removed, added);
 
   ret = TRUE;
  out:
index d3bd17c21d149f03a6f5b09dd2b3c88c88b0850a..daa544edc3c1bbdce404732f7f495dcc07b88d49 100644 (file)
@@ -122,7 +122,7 @@ ostree_builtin_diff (int argc, char **argv, GFile *repo_path, GError **error)
   if (!ostree_diff_dirs (srcf, targetf, modified, removed, added, cancellable, error))
     goto out;
 
-  ostree_diff_print (targetf, modified, removed, added);
+  ostree_diff_print (srcf, targetf, modified, removed, added);
 
   ret = TRUE;
  out: